"""
重写的概念：
    方法的重写也叫方法的覆盖。指的是：子类出现和父类重名(一模一样)的方法时，就叫做重写

重写的应用场景：
    当子类需要使用父类的功能主题，而且又有自己的独特需求的时候，就可以考虑从父类中继承过来并重写

故事三：
    一个摊煎饼的老师傅，在煎饼果子界摸爬滚打多年，研发了一套精湛的煎饼果子技术
    现在决定要把这套技术传授给骨骼惊奇的煎饼果子奇才聂茹凤，请编写一套程序，

    聂茹凤不满足于现有技术，于是包名到启点教育继续深造，学生更深入的摊煎饼技术

    聂茹凤 集百家之长终于 技术大成，研发出了自己的 绝技

    师傅类  master
        属性: 煎饼果子配方，  recipe
        行为：摊煎饼 practice

    学校：
        属性: 煎饼果子配方 recipe
        行为: 摊煎饼 practice

    徒弟类： prenticev


"""

# 定义师傅类
class Master:
    def __init__(self):
        self.recipe = '老师傅的传统配方'

    def practice(self):
        print('老师傅的传统手艺')

# 定义学校类
class School:
    def __init__(self):
        self.recipe = '启点独门配方'

    def practice(self):
        print('启点独门绝技')

# 定义徒弟类
class Prenticev(Master, School):

     def __init__(self):
         self.recipe = '聂茹凤的秘方'

     def practice(self): # 重写父类的方法
        print(f'聂茹凤使用 {self.recipe} 制作煎饼果子')

if __name__ == '__main__':
    p = Prenticev()
    print(p.recipe)  # 子类自己的属性
    p.practice()    # 调用子类自己的方法

